/* 
 * Ala.java
 * 
 * Data de criação: 06/09/2010
 * 
 * O2SOLUTIONS - SOLUÇÕES EM TECNOLOGIA DA INFORMAÇÃO. 
 *
 */
package br.com.o2solutions.siso.integration.entidade;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import br.com.o2solutions.core.integration.repository.entity.BaseEntity;

/**
 * Classe responsável por representar as Alas de Serviço de uma Unidade
 * Operacional.
 * 
 * @author Osvaldeir
 * @since 06/09/2010
 * 
 */
@Entity
@Table(name = "TBALA")
@SequenceGenerator(name = "SQALA", sequenceName = "SQALA")
public class Ala extends BaseEntity<Integer> {

	private static final long serialVersionUID = 1L;

	private String descricao;
	
	private JornadaTrabalho jornadaTrabalho;

	/**
	 * {@inheritDoc}
	 */
	@Id
	@Override
	@Column(name="ID")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SQALA")
	public Integer getId() {
		return super.getId();
	}

	/**
	 * Retorna o(a) descricao.
	 * 
	 * @return String
	 */
	@Column(name = "DESCRICAO", nullable = false, unique = true)
	public String getDescricao() {
		return descricao;
	}

	/**
	 * Atribui o(a) descricao.
	 * 
	 * @param descricao
	 *            String
	 */
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	/**
	 * Retorna o(a) jornadaTrabalho.
	 * 
	 * @return JornadaTrabalho
	 */
	@JoinColumn(name="JORNADATRABALHOID", nullable=false)
	@ManyToOne(fetch=FetchType.EAGER)
	public JornadaTrabalho getJornadaTrabalho() {
		return jornadaTrabalho;
	}

	/**
	 * Atribui o(a) jornadaTrabalho.
	 *
	 * @param jornadaTrabalho JornadaTrabalho
	 */
	public void setJornadaTrabalho(JornadaTrabalho jornadaTrabalho) {
		this.jornadaTrabalho = jornadaTrabalho;
	}
}
